package initialize

import (
	"context"
	"github.com/olivere/elastic"
	"goods_srv/global"
)

const mapping = `
{
	"settings":{
		"number_of_shards": 1,
		"number_of_replicas": 0
	},
	"mappings":{
		"tweet":{
			"properties":{
				"user":{
					"type":"keyword"
				},
				"message":{
					"type":"text",
					"store": true,
					"fielddata": true
				},
				"image":{
					"type":"keyword"
				},
				"created":{
					"type":"date"
				},
				"tags":{
					"type":"keyword"
				},
				"location":{
					"type":"geo_point"
				},
				"suggest_field":{
					"type":"completion"
				}
			}
		}
	}
}`

// 初始化es
func InitEs() {
	global.EsClient, err = elastic.NewClient(elastic.SetURL("127.0.0.1:9201"), elastic.SetSniff(false))
	if err != nil {
		panic(err)
	}
	exists, err := global.EsClient.IndexExists("goods").Do(context.Background())
	if err != nil {
		panic(err)
	}
	if !exists {
		// Create a new index.
		_, err := global.EsClient.CreateIndex("twitter").BodyString(mapping).Do(context.Background())
		if err != nil {
			panic(err)
		}
	}
}
